#ifndef B2D_CIRCLE_H
#define B2D_CIRCLE_H

#include "Maths.h"

NS_B2D_BEGIN


///
/// Circle shape
///
class B2D_API Circle final
{
public:
	static const Circle EMPTY;

	vec2 center;
	float radius;
	
public:
	Circle(void);
	Circle(const vec2& center, float r);
	Circle(float cx, float cy, float r);
	Circle(const Circle& c);
	
	Circle& operator= (const Circle& c);

	////////////////////////////////////////////////////////////////////////////////////////////////////
	/// \brief	Expands to include another circle.
	///
	/// \param	c	The circle to include.
	////////////////////////////////////////////////////////////////////////////////////////////////////
	void include(const Circle& c);
	/// 
	////////////////////////////////////////////////////////////////////////////////////////////////////
	/// \brief	Checks if it intersects with another circle.
	///
	/// \param	r	The const Circle&amp; to process.
	///
	/// \return	true if it does, false if it doesnt.
	////////////////////////////////////////////////////////////////////////////////////////////////////
	bool insersects(const Circle& r) const;
};

/// Bounding shape
typedef Circle BShape;

NS_B2D_END

#endif